#!/bin/bash

# 定义颜色代码
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
RED='\033[1;31m'
NC='\033[0m' # 恢复默认颜色

echo -e "${GREEN}
########################################
#   Kubernetes Worker 部署总控脚本     #
########################################
${NC}"

# 验证执行权限
if [[ $EUID -ne 0 ]]; then
   echo -e "${RED}[错误] 必须使用root用户执行本脚本${NC}" 
   exit 1
fi

# 主机名设置
echo -e "${YELLOW}[主机名设置] 当前主机名为: $(hostname)${NC}"
read -p "是否需要修改主机名? (y/n): " change_hostname

if [[ "$change_hostname" == "y" || "$change_hostname" == "Y" ]]; then
    read -p "请输入新的主机名: " new_hostname
    hostnamectl set-hostname "$new_hostname"
    echo -e "${GREEN}[成功] 主机名已修改为: $new_hostname${NC}"
else
    echo -e "${YELLOW}[跳过] 保持当前主机名不变${NC}"
fi

# 定义执行函数
function run_step() {
    echo -e "\n${GREEN}[步骤 $1/$2] 正在执行: $3...${NC}"
    ./sub_scripts/$4
    echo -e "\n${YELLOW}--------------------------------------"
    echo -e "[完成] $5"
    echo -e "下一步操作: $6"
    echo -e "--------------------------------------${NC}"
    read -p "按 Enter 继续执行下一步..."
}

# 按顺序执行各步骤
run_step 1 5 "禁用安全组件"    disable_security_services.sh    "SELinux/firewalld/swap已关闭"   "更换软件源 →"
run_step 2 5 "更换YUM源"      rocky_replace_ali_yum.sh        "阿里云源配置完成"              "安装容器运行时 →"
run_step 3 5 "安装容器运行时"  containerd_install_config.sh    "containerd已就绪"             "配置内核网络参数 →"
run_step 4 5 "网络预配置"     network_config.sh               "网络参数已加载"               "安装kube组件 →"
run_step 5 5 "安装K8s组件"    install_kube.sh                 "kubeadm/kubelet已安装"        "加入集群 →"

# 最终提示
echo -e "${GREEN}
########################################
#     Worker节点必要组件安装完成!      #
########################################
${YELLOW}
Worker节点上的必要服务和组件已经安装完成，相关配置也已经完成。

现在请到Master节点执行以下命令获取加入集群的命令:
  kubeadm token create --print-join-command

然后复制该命令到Worker节点执行，完成集群加入。

温馨提示:
1. 确保Worker节点能够与Master节点网络互通
2. 确保Worker节点上kubeadm版本与Master节点一致
3. 执行join命令时需要root权限
${NC}"

# 脚本结束
echo -e "${GREEN}Worker节点预配置脚本执行完毕!${NC}"
